package cn.wolfcode.crm.mapper;

import cn.wolfcode.crm.query.QueryObject;

import java.util.List;

/**
 * @author 丧彪
 * MyBatis Mapper 根接口
 */
public interface BaseMapper<T> {
	
	/**
	 *根据主键id删除一个实体
	 */
	int deleteByPrimaryKey(Long id);

    /**
     *新增一个实体
     */
    int insert(T entity);

    /**
     *通过id查询指定的实现
     */
    T selectByPrimaryKey(Long id);

    List<T> selectAll();

    /**
     *更新
     */
    int updateByPrimaryKey(T entity);
    
    /**
     * @param qo 查询条件对象
     * @return 总记录 
     */
    int queryForCount(QueryObject qo);
    
    /**
     *高级查询总数据
     */
    List<T> queryForList(QueryObject qo);
}
